﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Data;
using Utility;

namespace DataAccess
{
    public class MonHocControl
    {
        // tạo đối tượng của lớp LinqUtility , đối tương này sẽ xử lý trên bảng Môn Học
        LinqUtility<MonHoc> context = new LinqUtility<MonHoc>();

        // Tạo đối tượng database của linq
        QuanLyPhongHocDataContext db = new QuanLyPhongHocDataContext();

        // Lấy toàn bộ dữ liệu trong bảng lớp học
        public List<MonHoc> GetListMonHoc()
        {
            return context.GetAll();
        }

        // Lấy 1 dòng dữ liệu trong bảng lớp học
        public MonHoc GetMonHocById(int mamh)
        {
            var mh = (from m in db.MonHocs
                      where m.MaMH == mamh
                      select m).Single();
            return mh;
        }

        // kiểm tra tên môn học đã có hay chưa
        public int CheckTenMH(string tenMH)
        {
            int mh = 0;
            try
            {
                mh = (from m in db.MonHocs
                      where m.TenMH.Equals(tenMH)
                      select m.MaMH).Single();
                return mh;
            }
            catch (Exception ex)
            {
                mh = 0;
            }
            return mh;
        }

        // kiểm tra môn học muốn xóa có liên kết trong bảng Phân Công hay chưa , nếu có thì ko cho xóa
        public int CheckDeleteMonHoc(int mamh)
        {
            int mh = 0;
            try
            {
                mh = (from m in db.PhanCongs
                      where m.MaMH == mamh
                      select m.PCID).Single();
                return mh;
            }
            catch (Exception ex)
            {
                mh = 0;
            }
            return mh;
        }

        // tạo môn học
        public void InsertMonHoc(MonHoc mh)
        {
            context.Insert(mh);
        }

        // update
        public void UpdateMonHoc(MonHoc mh)
        {
            context.Update(mh);
        }

        // xóa
        public void DeleteMonHoc(MonHoc mh)
        {
            context.Delete(mh);
        }
    }
}
